The present invention relates to a method, apparatus or computer program product for managing a message subscription in a publish/subscribe messaging system.
In computerized publish/subscribe messaging systems a subscriber application program (subscriber) may subscribe to a single message broker application program (message broker) in order to receive published messages. If this message broker fails then the subscriber can no longer receive messages. When the subscriber is reconnected to the message broker then it is likely to have missed some messages.
Some publish/subscribe messaging systems provide high reliability high availability (HRHI) message brokers to reduce the probability of loss or disruption of a subscription service. In other words, such HRHI services are arranged to maintain message order and to not lose messages for a given subscription. Such subscription services can be provided by simultaneous subscription to multiple brokers providing multiple subscription streams. The subscriptions may be received directly from the multiple message brokers or by a single subscription to an intermediate message broker.
One problem with such HRHI subscription services is that they are relatively expensive in terms of the processing required at either the message subscriber or broker application programs. For example, the state of the subscriber needs to be maintained, that is, a record of which messages from a given subscription have been received. The state enables proper recovery of the subscription after a disconnection from the relevant message brokers. Furthermore, where a single subscription is received from multiple message brokers, managing the redundant or duplicate messages is a relatively complex process.